﻿#region << 文 件 说 明 >>

/*----------------------------------------------------------------
// 文件名称：IAppConfig
// 创 建 者：杨程
// 创建时间：2021/9/7 15:18:29
// 文件版本：V1.0.0
// ===============================================================
// 功能描述：
//
//
//----------------------------------------------------------------*/

#endregion

namespace Vampirewal.Core.Interface;

/// <summary>
/// 系统配置接口
/// </summary>
[Obsolete("20230128 已废弃，请使用新的配置文件方式", true)]
public interface IAppConfig
{
    /// <summary>
    /// 日志级别
    /// </summary>
    LoggerType LogLevel { get; set; }

    /// <summary>
    /// app中文名
    /// </summary>
    string AppChineseName { get; set; }//展示界面顶部的名称

    /// <summary>
    /// 程序本地版本
    /// </summary>
    string AppVersion { get; set; }

    /// <summary>
    /// ConnectionStrings
    /// </summary>
    List<ConnectionString> ConnectionStrings { get; set; }

    /// <summary>
    /// Database type
    /// </summary>
    DBTypeEnum DbType { get; set; }

    /// <summary>
    /// 列表分页设置
    /// </summary>
    PageSetting pageSetting { get; set; }

    /// <summary>
    /// 自定义设置
    /// </summary>
    Dictionary<string, string> AppSettings { get; set; }

    /// <summary>
    /// 密钥Key
    /// </summary>
    string EncryptKey { get; set; }

    /// <summary>
    /// 附件上传设置
    /// </summary>
    FileUploadOptions FileUploadOptions { get; set; }

    /// <summary>
    /// 更新程序设置
    /// </summary>
    UpdateSetting UpdateSetting { get; set; }

    /// <summary>
    /// 视图View模块dll路径
    /// </summary>
    List<string> ViewModulesPath { get; set; }

    /// <summary>
    /// 连接域设置
    /// </summary>
    List<DomainSetting> Domains { get; set; }

    /// <summary>
    /// 配置文件路径
    /// </summary>
    string ConfigPath { get; set; }

    /// <summary>
    /// 配置文件名称
    /// </summary>
    string ConfigName { get; set; }

    /// <summary>
    /// 读取配置文件
    /// </summary>
    void LoadAppConfig();

    /// <summary>
    /// 保存配置文件
    /// </summary>
    void Save();

    /// <summary>
    /// 重置配置文件（慎用）
    /// </summary>
    void Reset();
}